# Copyright (c) Lawrence Livermore National Security, LLC and other VisIt
# Project developers.  See the top-level LICENSE file for dates and other
# details.  No copyright assignment is required to contribute to VisIt.

#*****************************************************************************
# Modifications:
#   David M. Camp, Th Jan 14 11:50:00 PST 2010
#   Added new function ADD_TARGET_DEFINITIONS to add defines to targets.
#   This was needed for the plots to define ENGINE only for the engine build.
#
#   Brad Whitlock, Thu May 27 09:30:00 PDT 2010
#   Wrap setting the compiler in an if-exists test.
#
#   Mark C. Miller, Thu Jul 29 17:37:32 PDT 2010
#   Added block for compiler version comments.
#
#   Brad Whitlock, Tue Aug 17 09:17:19 PDT 2010
#   I added NETCDF_CXX_LIB.
#
#   Brad Whitlock, Wed Oct 27 14:12:19 PDT 2010
#   Make sure that TESSELLATION_LIBRARY gets saved.
#
#   Kathleen Bonnell, Thu Dec 2 15:45:44 MST 2010
#   Allow plugin installs on Windows.
#   Added BOOST_INCLUDE_DIR, TESSELLATION_LIBRARY.
#   Expand SLIVR_INCLUDE_DIR.
#   Add defintions for HAVE_LIBGLEW, HAVE_LIBSLIVR (if VISIT_SLIVR).
#   Only set TUVOK_LIB if VISIT_TUVOK is ON.
#   Add preprocessor definitions for Windows.
#   Add VISIT_PYTHON_SCRIPTING.
#
#   Brad Whitlock, Thu Jun 23 17:03:35 PDT 2011
#   Fix python library extension for Mac.
#
#   Kathleen Biagas, Thu Jun 21 11:12:57 MST 2012
#   Include paths for vtk, exodusii, python and lib names for ptyhon are
#   different on windows than unix, so use special vars set in root
#   CMakeLists.txt file.  Fix boxlib include and lib var names.
#   Added fix for automatic debug flags setting on windows, to allow proper
#   linking with our default release-version third-party libraries.
#   Added 'ADD_TARGET_INCLUDE' function, change how parallel flags are
#   handled on windows. Fix glitch with ADD_TARGET_DEFINITIONS when target
#   had more than one definition set already.
#
#   Kathleen Biagas, Tue Oct 29 12:24:32 MST 2013
#   Fixed typos in Functions that prevented caused problems on Windows.
#
#   Kathleen Biagas, Fri Oct 31 11:22:25 PDT 2014
#   Compare visual studio versions on windows (if using MSVC) instead of
#   comparing compiler paths.  Enclose \@CMAKE_C_COMPILER\@ in quotes to
#   handle spaces-in-paths on windows that causes warnings for this script.
#   Remove setting of Windows Definitions, VISIT_PLUGIN_TARGET_RTOD,
#   ADD_TARGET_INCLUDE, ADD_TARGET_DEFINITIONS, ADD_PARALLEL_LIBRARY, as
#   these are now available in VisItMacros.cmake, and can be used without
#   re-write.  Include VisItMacros.cmake.
#
#   Cyrus Harrison, Tue Feb 10 20:06:07 PST 2015
#   Changed boost support.
#
#   Iulian R. Grindeanu & Vijay S. Mahadevan via Mark C Miller
#   Wed Aug 10 14:54:05 PDT 2016
#   Added support for ANL's Mesh Object datABase (MOAB)
#
#   Kathleen Biagas, Fri Mar  2 14:51:27 MST 2018
#   Removed TUVOK.
#
#   Kathleen Biagas, Thu Sep 27 11:29:37 PDT 2018
#   Added mfem. Fix cmake logic for MSVC. Fix boost, Qt.  Add
#   get_filename_component calls to get root install directory for setting
#   VISIT_INCLUDE_DIR, VISIT_LIBRARY_DIR, VISIT_BINARY_DIR, VISIT_ARCHIVE_DIR.
#
#   Kathleen Biagas, Thu Nov  8 10:10:06 PST 2018
#   Added VTKh_INCLUDE_DIRS and VTKM_DIR.
#
#   Kathleen Biagas, Wed Apr 17 12:54:40 PDT 2019
#   MFEM has an include dependency on conduit, move it below conduit in the
#   list and add conduit include to it's include.
#
#   Eric Brugger, Wed Jun 26 10:01:32 PDT 2019
#   Removed the CCM reader.
#
#   Kathleen Biagas, Fri Jul 19 12:11:05 PDT 2019
#   Added ZLIB. Removed SLIVR. Added zlib to MFEM include.
#
#   Kevin Griffin, Thu Aug 8 18:30:27 PDT 2019
#   Added the correct paths for the QT_QT*_INCLUDE_DIR variables for OSX.
#
#   Eddie Rusu, Wed Oct 14 15:52:13 PDT 2020
#   Removed FastBit and FastQuery
#
#   Kathleen Biagas, Mon Jan  4 18:14:23 PST 2021
#   Use \@filtered_VTKm_INCLUDE_DIRS\@  for setting VTKm_INCLUDE_DIRS
#   instead of setting manually.
#
#   Kathleen Biagas, Mon Feb 28 13:48:42 PST 2022
#   Added CONDUIT_HAVE_PARTITION_FLATTEN.
#
#   Cyrus Harrison, Fri Jun  3 15:46:29 PDT 2022
#   Remove TESSELLATION_LIBRARY entires (no longer used)
#
#   Kathleen Biagas, Wed Jun 8 2022
#   Added VISIT_ROOT_INCLUDE_DIR for ThirdParty and .cmake includes, so that
#   VISIT_INCLUDE_DIR can be used for visit includes.
#
#   Kathleen Biagas, Wed Aug 10 15:41:22 PDT 2022
#   VTK_VERSION is needed for version comparisons so that both VTK 9 and
#   VTK 8 can be supported.
#
#   Justin Privitera, Tue Aug 23 14:40:24 PDT 2022
#   Removed `CONDUIT_HAVE_PARTITION_FLATTEN` check.
#
#   Kathleen Biagas, Mon Sep 26, 2022
#   Remove HDF4 support.
#
#   Kathleen Biagas, Wed Nov  8 10:08:50 PST 2023
#   Added definitions for VTK_VERSION_HEX, needed for LIB_VERSION comparisons
#   in source code.
#
#   Kathleen Biagas, Fri May 3, 2024
#   Add correct name for QT_MOC_EXEUCTABLE on Windows.
#   Add ADIOS2 and ADIOS2_PAR vars.
#   Consolidated VISIT_INSTALL_XXX_PLUGINS logic into new function.
#   Add separate RUNTIME_OUTPUT_DIRECTORY entries for each Configuration
#   type on Windows (VISIT_INSTALL_PLUGINS).
#
#   Kathleen Biagas, Wed Sep 18, 2024
#   Added HAVE_LIBVTKM.
# 
#****************************************************************************/

##
## This file gets generated by VisIt's top-level CMakeLists.txt and gets
## installed along with VisIt so 3rd party plugins can be developed against an
## installed version of VisIt.
##

# Build shared libraries since we're building plugins.
set(BUILD_SHARED_LIBS 1)


# Warn if compilers might be incompatible.
if(WIN32 AND MSVC)
    if(NOT @MSVC_VERSION@ STREQUAL ${MSVC_VERSION})
      message(WARNING "MSVC version used for VisIt (@MSVC_VERSION@) differs from the one used for the current project ${MSVC_VERSION}!  They may incompatible.")
    endif()
else()
    if(EXISTS "@CMAKE_C_COMPILER@" AND
       NOT ${CMAKE_C_COMPILER} STREQUAL "@CMAKE_C_COMPILER@")
      message(WARNING "C compiler used for VisIt (@CMAKE_C_COMPILER@)\n"
              "differs from the one used for the current project!\n"
              "(${CMAKE_C_COMPILER}) They may be incompatible.")
    endif()
    if(EXISTS "@CMAKE_CXX_COMPILER@" AND
       NOT ${CMAKE_CXX_COMPILER} STREQUAL "@CMAKE_CXX_COMPILER@")
      message(WARNING "C++ compiler used for VisIt (@CMAKE_CXX_COMPILER@)\n"
              "differs from the one used for the current project!\n"
              "(${CMAKE_CXX_COMPILER})  They may be incompatible.")
    endif()
endif()


# The comment below is intended to capture version information
# of the compiler in use at the time CMake was invoked to build
# VisIt. If there is no comment in the intervening lines, then
# compiler version information was not successfully obtained.
# -------------------------------------------------------------
# @CMAKE_C_COMPILER_VERSION_MESSAGE@
# @CMAKE_CXX_COMPILER_VERSION_MESSAGE@
# -------------------------------------------------------------

# this should return the installed/include path
get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
# this should strip off the include
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)

set(VISIT_ROOT_INCLUDE_DIR "${_IMPORT_PREFIX}/include")
set(VISIT_INCLUDE_DIR "${VISIT_ROOT_INCLUDE_DIR}/visit")
set(VISIT_LIBRARY_DIR "${_IMPORT_PREFIX}/lib")
if(WIN32)
  set(VISIT_BINARY_DIR  "${_IMPORT_PREFIX}")
  set(VISIT_ARCHIVE_DIR "${_IMPORT_PREFIX}/lib")
else()
  set(VISIT_BINARY_DIR  "${_IMPORT_PREFIX}/bin")
  set(VISIT_ARCHIVE_DIR "${_IMPORT_PREFIX}/archives")
endif()

include(${VISIT_ROOT_INCLUDE_DIR}/CheckMinimumCompilerVersion.cmake)

set(HAVE_LIBZ @HAVE_LIBZ@)
if(HAVE_LIBZ)
    set(ZLIB_INCLUDE_DIR ${VISIT_ROOT_INCLUDE_DIR}/zlib/include)
endif()

# VisIt options
set(VISIT_PYTHON_SCRIPTING       @VISIT_PYTHON_SCRIPTING@)
set(VISIT_SERVER_COMPONENTS_ONLY @VISIT_SERVER_COMPONENTS_ONLY@)
set(VISIT_ENGINE_ONLY            @VISIT_ENGINE_ONLY@)
set(VISIT_DBIO_ONLY              @VISIT_DBIO_ONLY@)
set(VISIT_PARALLEL               @VISIT_PARALLEL@)
set(VISIT_JAVA                   @VISIT_JAVA@)
set(VISIT_SLIVR                  @VISIT_SLIVR@)
set(HAVE_LIBOSPRAY               @HAVE_LIBOSPRAY@)
set(HAVE_OSPRAY                  @HAVE_OSPRAY@)

# Set up VTK
set(VTK_VERSION @VTK_VERSION@)
# VTK_VERSION_HEX is needed for LIB_VERSION comparisons in source code
add_definitions(-DVTK_VERSION_HEX=@VTK_VERSION_HEX@)
set(VTK_INCLUDE_DIRS ${VISIT_ROOT_INCLUDE_DIR}@vtk_include_relative_path@)
set(VTK_LIBRARY_DIRS ${VISIT_LIBRARY_DIR})

# Set up OpenGL
set(OPENGL_INCLUDE_DIR  @OPENGL_INCLUDE_DIR@)
set(OPENGL_gl_LIBRARY   @OPENGL_gl_LIBRARY@)
set(OPENGL_glu_LIBRARY  @OPENGL_glu_LIBRARY@)
set(OPENGL_LIBRARIES    @OPENGL_LIBRARIES@)

# Set up BOOST
set(BOOST_INCLUDE_DIR ${VISIT_ROOT_INCLUDE_DIR}/boost/include/boost)

# Set up Qt
if(APPLE)
    set(QT_INCLUDE_DIR           ${VISIT_ROOT_INCLUDE_DIR}/qt/include)
    set(QT_QTCORE_INCLUDE_DIR    ${VISIT_LIBRARY_DIR}/QtCore.framework/Versions/Current/Headers)
    set(QT_QTGUI_INCLUDE_DIR     ${VISIT_LIBRARY_DIR}/QtGui.framework/Versions/Current/Headers)
    set(QT_QTOPENGL_INCLUDE_DIR  ${VISIT_LIBRARY_DIR}/QtOpenGL.framework/Versions/Current/Headers)
    set(QT_QTWIDGETS_INCLUDE_DIR ${VISIT_LIBRARY_DIR}/QtWidgets.framework/Versions/Current/Headers)
    set(QT_QTXML_INCLUDE_DIR     ${VISIT_LIBRARY_DIR}/QtXml.framework/Versions/Current/Headers)
else()
    set(QT_INCLUDE_DIR           ${VISIT_ROOT_INCLUDE_DIR}/qt/include)
    set(QT_QTCORE_INCLUDE_DIR    ${VISIT_ROOT_INCLUDE_DIR}/qt/include/QtCore)
    set(QT_QTGUI_INCLUDE_DIR     ${VISIT_ROOT_INCLUDE_DIR}/qt/include/QtGui)
    set(QT_QTOPENGL_INCLUDE_DIR  ${VISIT_ROOT_INCLUDE_DIR}/qt/include/QtOpenGL)
    set(QT_QTWIDGETS_INCLUDE_DIR ${VISIT_ROOT_INCLUDE_DIR}/qt/include/QtWidgets)
    set(QT_QTXML_INCLUDE_DIR     ${VISIT_ROOT_INCLUDE_DIR}/qt/include/QtXml)
endif()

set(QT_LIBRARY_DIR           ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
set(QT_BIN                   ${VISIT_BINARY_DIR})
if(WIN32)
    set(QT_MOC_EXECUTABLE        ${VISIT_BINARY_DIR}/moc.exe)
else()
    set(QT_MOC_EXECUTABLE        ${VISIT_BINARY_DIR}/moc)
endif()

# Set up Python
set(PYTHON_INCLUDE_PATH    ${VISIT_ROOT_INCLUDE_DIR}@python_include_relative_path@)
set(PYTHON_LIBRARY         ${VISIT_LIBRARY_DIR}/@PYLIB@)

# Commonly used VisIt include directories
include(${VISIT_ROOT_INCLUDE_DIR}/VisItIncludeVars.cmake)

# plugin vs install needs visit's base include dir as well
list(PREPEND ${VISIT_COMMON_INCLUDES} ${VISIT_INCLUDE_DIR})

# Set up 3rd party I/O libraries
set(ADIOS_INCLUDE_DIR ${VISIT_ROOT_INCLUDE_DIR}/adios/include)
set(ADIOS_LIBRARY_DIR ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
set(ADIOS_LIB @ADIOS_LIB@)

set(ADIOS2_INCLUDE_DIR ${VISIT_ROOT_INCLUDE_DIR}/adios2/include)
set(ADIOS2_LIBRARY_DIR ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
set(ADIOS2_LIB @ADIOS2_LIB@)

set(ADIOS2_PAR_INCLUDE_DIR ${VISIT_ROOT_INCLUDE_DIR}/adios2/include)
set(ADIOS2_PAR_LIBRARY_DIR ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
set(ADIOS2_PAR_LIB @ADIOS2PAR__LIB@)


set(ADVIO_INCLUDE_DIR ${VISIT_ROOT_INCLUDE_DIR}/advio/include)
set(ADVIO_LIBRARY_DIR ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
set(ADVIO_LIB @ADVIO_LIB@)

set(BOXLIB_INCLUDE_DIR ${VISIT_ROOT_INCLUDE_DIR}/boxlib/include)
set(BOXLIB_LIBRARY_DIR ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
set(BOXLIB_2D_LIB @BOXLIB_2D_LIB@)
set(BOXLIB_3D_LIB @BOXLIB_3D_LIB@)

set(CFITSIO_INCLUDE_DIR ${VISIT_ROOT_INCLUDE_DIR}/cfitsio/include)
set(CFITSIO_LIBRARY_DIR ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
set(CFITSIO_LIB @CFITSIO_LIB@)

set(CGNS_INCLUDE_DIR ${VISIT_ROOT_INCLUDE_DIR}/cgns/include)
set(CGNS_LIBRARY_DIR ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
set(CGNS_LIB @CGNS_LIB@)

set(EXODUSII_INCLUDE_DIR ${VISIT_ROOT_INCLUDE_DIR}/@exodusii_inlcude_relative_path@)
set(EXODUSII_LIBRARY_DIR ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
set(EXODUSII_LIB @EXODUSII_LIB@)

set(GDAL_INCLUDE_DIR ${VISIT_ROOT_INCLUDE_DIR}/gdal/include)
set(GDAL_LIBRARY_DIR ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
set(GDAL_LIB @GDAL_LIB@)

set(HDF5_INCLUDE_DIR ${VISIT_ROOT_INCLUDE_DIR}/hdf5/include)
set(HDF5_LIBRARY_DIR ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
set(HDF5_LIB @HDF5_LIB@)
if(VISIT_PARALLEL)
    set(HDF5_MPI_INCLUDE_DIR ${VISIT_ROOT_INCLUDE_DIR}/hdf5_mpi/include)
    set(HDF5_MPI_LIBRARY_DIR ${VISIT_LIBRARY_DIR}/hdf5_mpi ${VISIT_ARCHIVE_DIR})
    set(HDF5_MPI_LIB @HDF5_MPI_LIB@)
endif()

set(H5PART_INCLUDE_DIR ${VISIT_ROOT_INCLUDE_DIR}/h5part/include)
set(H5PART_LIBRARY_DIR ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
set(H5PART_LIB @H5PART_LIB@)

set(MOAB_INCLUDE_DIR ${VISIT_ROOT_INCLUDE_DIR}/moab/include)
set(MOAB_LIBRARY_DIR ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
set(MOAB_LIB @MOAB_LIB@)
if(VISIT_PARALLEL)
    set(MOAB_MPI_INCLUDE_DIR ${VISIT_ROOT_INCLUDE_DIR}/moab_mpi/include)
    set(MOAB_MPI_LIBRARY_DIR ${VISIT_LIBRARY_DIR}/moab_mpi ${VISIT_ARCHIVE_DIR})
    set(MOAB_MPI_LIB @MOAB_MPI_LIB@)
endif()

set(MILI_INCLUDE_DIR ${VISIT_ROOT_INCLUDE_DIR}/mili/include)
set(MILI_LIBRARY_DIR ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
set(MILI_LIB @MILI_LIB@)

set(NETCDF_INCLUDE_DIR ${VISIT_ROOT_INCLUDE_DIR}/netcdf/include)
set(NETCDF_LIBRARY_DIR ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
set(NETCDF_LIB @NETCDF_LIB@)
set(NETCDF_CXX_LIB @NETCDF_CXX_LIB@)

set(PDB_INCLUDE_DIR ${VISIT_ROOT_INCLUDE_DIR}/silo/include)
set(PDB_LIBRARY_DIR ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
set(PDB_LIB @SILO_LIB@)

set(SILO_INCLUDE_DIR ${VISIT_ROOT_INCLUDE_DIR}/silo/include)
set(SILO_LIBRARY_DIR ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
set(SILO_LIB @SILO_LIB@)

set(XDMF_INCLUDE_DIR  ${VISIT_ROOT_INCLUDE_DIR}/xdmf/include)
set(XDMF_LIBRARY_DIR  ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
set(XDMF_LIB @XDMF_LIB@)


set(CONDUIT_INCLUDE_DIR  ${VISIT_ROOT_INCLUDE_DIR}/conduit/conduit)
set(CONDUIT_LIBRARY_DIR  ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
set(CONDUIT_LIB @CONDUIT_LIB@)
if(VISIT_PARALLEL)
    set(CONDUIT_MPI_INCLUDE_DIR ${VISIT_ROOT_INCLUDE_DIR}/conduit/conduit)
    set(CONDUIT_MPI_LIBRARY_DIR ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
    set(CONDUIT_MPI_LIB @CONDUIT_MPI_LIB@)
endif()


set(FMS_INCLUDE_DIR  ${VISIT_ROOT_INCLUDE_DIR}/fms/include)
set(FMS_LIBRARY_DIR  ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
set(FMS_LIB @FMS_LIB@)

# mfem include, fudge because we know that the includes should be
set(MFEM_INCLUDE_DIR  ${VISIT_ROOT_INCLUDE_DIR}/mfem/include;${CONDUIT_INCLUDE_DIR};${FMS_INCLUDE_DIR};${ZLIB_INCLUDE_DIR})
set(MFEM_LIBRARY_DIR  ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
set(MFEM_LIB @MFEM_LIB@)

set(OPENEXR_INCLUDE_DIR  ${VISIT_ROOT_INCLUDE_DIR}/openexr/OpenEXR)
set(OPENEXR_LIBRARY_DIR  ${VISIT_LIBRARY_DIR} ${VISIT_ARCHIVE_DIR})
set(OPENEXR_LIB @OPENEXR_LIB@)

set(HAVE_LIBVTKM                 @HAVE_LIBVTKM@)
set(VTKm_INCLUDE_DIRS  @filtered_VTKm_INCLUDE_DIRS@)

include(${VISIT_ROOT_INCLUDE_DIR}/VisItMacros.cmake)

# Installation macros
macro(VISIT_INSTALL_PLUGINS type)
    if(WIN32)
        foreach(conf ${CMAKE_CONFIGURATION_TYPES})
            string(TOUPPER ${conf} uconf)
            set_target_properties(${ARGN} PROPERTIES
                RUNTIME_OUTPUT_DIRECTORY_${uconf} ${VISIT_PLUGIN_DIR}/${type})
        endforeach()
    else()
        set_target_properties(${ARGN} PROPERTIES
           LIBRARY_OUTPUT_DIRECTORY ${VISIT_PLUGIN_DIR}/${type})
    endif()
endmacro()

macro(VISIT_INSTALL_DATABASE_PLUGINS)
    VISIT_INSTALL_PLUGINS(databases ${ARGN})
endmacro()

macro(VISIT_INSTALL_OPERATOR_PLUGINS)
    VISIT_INSTALL_PLUGINS(operators ${ARGN})
endmacro()

macro(VISIT_INSTALL_PLOT_PLUGINS)
    VISIT_INSTALL_PLUGINS(plots ${ARGN})
endmacro()

macro(VISIT_PLUGIN_TARGET_FOLDER type pname)
    message(STATUS "Skipping VISIT_PLUGIN_TARGET_FOLDER macro")
endmacro()

# Parallel settings
set(VISIT_PARALLEL_CXXFLAGS     @filtered_VISIT_PARALLEL_CXXFLAGS@)
set(VISIT_PARALLEL_LINKER_FLAGS @filtered_VISIT_PARALLEL_LINKER_FLAGS@)
set(VISIT_PARALLEL_LIBS         "@filtered_VISIT_PARALLEL_LIBS@")
set(VISIT_PARALLEL_INCLUDE      "@filtered_VISIT_PARALLEL_INCLUDE@")
set(VISIT_PARALLEL_DEFS         @filtered_VISIT_PARALLEL_DEFS@)
set(VISIT_NOLINK_MPI_WITH_LIBRARIES @VISIT_NOLINK_MPI_WITH_LIBRARIES@)

